architecture behav of cross_product is
begin

  process
    variable sum : signed(15 downto 0);
  begin
    sum := to_signed(0,16);
    for i in 0 to 7 loop
      sum := sum + a(i) * b(i);
    end loop;
    result <= sum;
    wait for 100 ns;
  end process;

end architecture;